/// <summary>
/// Defines a 3D plane for rendering.
/// </summary>
struct Face
{
public:
	/// <summary>
	/// Initializes a new instance of the <see cref="Face" /> struct.
	/// </summary>
	/// <param name="point0">The first point of the plane.</param>
	/// <param name="point1">The second point of the plane.</param>
	/// <param name="point2">The third point of the plane.</param>
	/// <param name="point3">The fourth point of the plane.</param>
	/// <param name="color">The color of the plane.</param>
	/// <param name="texture">The texture on the plane.</param>
	/// <param name="coords">The top-left of the texcoords for this plane.</param>
	/// <param name="w">The width of the texture used on this plane.</param>
	/// <param name="h">The height of the texture used on this plane.</param>
	Face (const Point3f &point0, const Point3f &point1, const Point3f &point2, const Point3f &point3, const Colorb &color, ITexture *texture, const Point2i &coords, const float &w, const float &h);

	/// <summary>
	/// Flip the texture coordinates of this face on the X axis.
	/// </summary>
	/// <returns>The same instance of this face.</returns>
	Face &FlipX();
}